﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using DeepEarth.Core;
using DeepEarth.Map.Core;
using System.ComponentModel.Composition;
using System.Collections.ObjectModel;
using DeepEarth.Map.Core.Tiling;

namespace DeepEarth.Map.TileSources
{
    /// <summary>
    /// A map mode describes a set of tiles and their opacity. It is used with the MapView Mode and SecondaryModes properties.
    /// </summary>

    [Export(typeof(BaseTileSourceProvider))]
    public class OSMTileSourceProvider : BaseTileSourceProvider<OSMTileSourceFactory>
    {
        public OSMTileSourceProvider()
            : this(OSMTileSourceFactory.StreetMap)
        {
        }

        public OSMTileSourceProvider(MapMode mode)
			: base(mode)
        {
        	IsShowStreetsEnabled = true;
        }

        public override bool ShowStreets { get; set; }
        
        public override BaseTileSourceProvider Clone()
		{
            var result = new OSMTileSourceProvider();
			FillClone(result);
			return result;
		}
	}
}